package com.vcc.service.service;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.vcc.data.entity.ShareAccountDetail;
import com.vcc.service.client.share.detail.response.ClientShareAccountDetailResponse;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

public interface ShareAccountDetailService extends IService<ShareAccountDetail> {


    /**
     *  TRANSFER_IN  转入
     *  TRANSFER_OUT 转出
     *  OPEN 开卡
     *  AUTH 预授权
     *  AUTH_FEE 预授权手续费
     *  MIN_AUTH_FEE 小金额预授权手续费
     *  FAIL_AUTH_FEE 预授权失败手续费
     *  CROSS_BORDER_AUTH_FEE 跨境预授权手续费
     *  REFUND 退款
     *  REFUND_FEE 退款手续费
     *  REVERSAL 预授权撤销
     *  REVERSAL_FEE 预授权撤销手续费
     *  FEE 手续费
     */
    ShareAccountDetail create(
            Long shareAccountId,
            BigDecimal balance,
            String currencyCode,
            String channelCode,
            String type,
            String orderId,
            BigDecimal amount,
            String remark,
            Boolean hasTransferIn,
            Long cardTypeId,
            Long userCardId,
            Long userId,
            Long operationUserId
    );


    Page<ClientShareAccountDetailResponse> paging(
            Integer pageNumber,
            Integer pageSize,
            String orderId,
            Long shareAccountId,
            String type,
            String startDate,
            String endDate
    );


    Boolean setCardNumberIdByOrderId(String orderId, Long userCardId);


}
